/*
 * 描          述:  <描述>
 * 修  改   人:  PengQingyang
 * 修改时间:  2024年3月7日
 * <修改描述:>
 */
package com.tx.core;

/**
 * 单元测试
 * https://blog.csdn.net/baomingshu/article/details/134768188
 * <功能详细描述>
 * 
 * @author  PengQingyang
 * @version  [版本号, 2024年3月7日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface JunitHelper {
    
    //集成测试：@SpringBootTest
    /*
     * 用于指定Spring Boot应用程序的集成测试。
     * 会加载完整的Spring应用程序上下文，并提供Mock Web Environment，包括所有的bean和配置。
     * 通常用于在JUnit 5中进行Spring Boot应用程序的集成测试。
     */
    //如果测试时不启动Spring上下文可以进行设置：@SpringBootTest(webEnvironment = WebEnvironment.NONE)
    
    //集成测试：@ExtendWith(SpringExtension.class)
    //@ExtendWith(SpringExtension.class)和@SpringBootTest注解结合使用的效果是在JUnit 5测试中启用Spring的测试框架特性，并且会启动完整的Spring应用程序上下文
    //如果你只需要启用Spring支持而不需要加载整个应用程序上下文，可以只单独使用@ExtendWith(SpringExtension.class)。而不使用@SpringBootTest注解，这意味着测试中可以使用Spring的依赖注入、自动装配和其他Spring特性，但无法访问完整的Spring Bean和配置。
    
    //单元测试：ExtendWith(MockitoExtension.class)
    /*
     * 希望在JUnit 5中使用Mockito框架进行单元测试时可以使用@ExtendWith(MockitoExtension.class)来确保正确的测试环境和行为。
     * 以便初始化模拟对象并处理严格的存根。这个扩展类类似于JUnit 4中的MockitoJUnitRunner，
     * 它可以在测试类中自动初始化模拟对象，并处理严格的存根
     */
    //切片测试:@WebMvcTest和@DataJpaTest
}
